<%@page import="co.gov.medellin.ssti.sub.web.form.ReportTotalComunaForm"%>
<%@page import="co.gov.medellin.ssti.sub.common.util.FiltrosReportesUtil"%>
<%@page import="co.gov.medellin.ssti.sub.common.util.Utility"%>
<%@ page import="co.gov.medellin.ssti.sub.paoyer.administration.model.vo.UserVO" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" isELIgnored="false" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/displaytag.tld" prefix="display"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page import="java.util.*"%>


<script type="text/javascript"
	src="<%=request.getContextPath() + "/js/popUP.js"%>"></script>
<link href="<%=request.getContextPath() + "/css/bloques.css"%>"
	rel="stylesheet" type="text/css">
<link href="<%=request.getContextPath() + "/css/table.css"%>"
	rel="stylesheet" type="text/css">

<script src="<%=request.getContextPath()%>/js/displaytag.js"
	type="text/javascript"></script>
<script src="<%=request.getContextPath()%>/js/dateValidation.js"
	type="text/javascript"></script>
<script type="text/javascript"
	src="<%=request.getContextPath() + "/js/jquery-1.8.0.js"%>"></script>
<script type="text/javascript"
	src="<%=request.getContextPath()
					+ "/js/jquery-ui-1.10.3.custom.min.js"%>"></script>
	<script type="text/javascript"
	src="<%=request.getContextPath()
					+ "/js/jquery.ui.datepicker-es.js"%>"></script>

<script type="text/javascript"
	src="<%=request.getContextPath()%>/dwr/engine.js"></script>
<script type="text/javascript"
	src="<%=request.getContextPath()%>/dwr/interface/VisualHelper.js"></script>
<script type="text/javascript"
	src="<%=request.getContextPath()%>/dwr/util.js"></script>

<link rel="stylesheet"
	href="<%=request.getContextPath()
					+ "/css/ui-lightness/jquery-ui-1.10.3.custom.css"%>" />

<!-- al seleccionar el select de programas. -->
<script type="text/javascript">
$(document).ready(function() {
	// solo se mostrara cuando se elija el operador Entre (BETWEEN) para fechas y numeros.
	$("#inputValor2").hide();
	$("#inputValor2Fecha").hide();
	
	$('#programaSelect').change(function() {
		//operacion = "<%=Utility.OP_SELECT_PROGRAMA%>";
		//Metodo DWR
    	selectPrograma();
	});
	
	// cuando cambia el select de zona.
	$("#zonaSelect").change(function() {
	    //hidden field operacion
		$("input[id='operacion']").val("<%=Utility.OP_SELECT_ZONA%>");	    
		//Metodo DWR
	    selectZona();
	});
	
	// cuando cambia el select de comuna.
	$("#comunaSelect").change(function() {
	    //hidden field operacion
		$("input[id='operacion']").val("<%=Utility.OP_SELECT_COMUNA%>");
		//Metodo DWR
		selectComuna();
	});
	
	// cuando cambia el select de atributos debe asignar los filtros apropiados.
	$("#atributoSelect").change(function() {
	    $("input[id='etiquetaValor1']").val("");
	    $("input[id='etiquetaOperador']").val("");
	    $("input[id='etiquetaAtributo']").val("");
		
	    //hidden field operacion
		$("input[id='operacion']").val("<%=Utility.OP_SELECT_ATRIBUTO%>");	
	    $("#mainForm").attr('target', '_self');		
		$("form#mainForm").submit();
	});
	
	// cuando cambia el select de operador
	$('#operadorSelect').change(function() {
		// si es el operador BETWEEN debe mostrar 2 elementos para ingresar el rango.
		//codeOperador = $("#operadorSelect").val();
		if(codeOperador == '<%=FiltrosReportesUtil.ENTRE%>'){
			if($("#tipoCampo").val() == '<%=FiltrosReportesUtil.TIPO_FECHA%>' ){
				$("#inputValor2").hide().val("");
				$("#inputValor2Fecha").show().val("");
			}else{
				$("#inputValor2Fecha").hide().val("");
				$("#inputValor2").show().val("");
			}
		}else{
			$("#inputValor2Fecha").hide().val("");
			$("#inputValor2").hide().val("");
		}
	});
	
	//handler para el boton generar - validar fechas.
	$("#generarBtn").click(function() {

        $("input[id='operacion']").val("<%=Utility.OP_GENERAR_REPORTE%>");
        $("#mainForm").attr('target', '_BLANK');

        if( ($("#fechaIni").val() == '' && $("#fechaFin").val() == '')){
			$("#mainForm").submit();
		}else{
			var fIniValida = isDate($("#fechaIni").val());
			var fFinValida = isDate($("#fechaFin").val());
			if(!fIniValida){
				alert('Fecha inicial no valida.');
				return false;
			}else if(!fFinValida){
				alert('Fecha final no valida.');
				return false;
			}else{
				if( $.datepicker.parseDate("dd/mm/yy", $("#fechaIni").val()) > $.datepicker.parseDate("dd/mm/yy", $("#fechaFin").val())){
					alert('Fecha inicial no puede ser mayor que la fecha final.');
					return false;
				}
			}
		}
			$("#mainForm").submit();
	});	
	
	//separando con "," para multiples ids.
	$('#addFilter').click(function() {
		if($("#atributoSelect").val() === ""){
			alert("Seleccione un atributo.");
			return;
		}
		// si ningun valor 1 ha sido ingresado
		if($("#inputValor1Fecha").val() != "undefined" && $("#inputValor1Fecha").val() === ""){
			alert("Ingrese un valor1");
			return;
		}
		if(typeof $("#inputValor1").val != "undefined" && $("#inputValor1").val() === ""){
			alert("Ingrese un valor1");
			return;
		}
		if(typeof $("#valor1Select").val() != "undefined" && $("#valor1Select").val() === ""){
			alert("Ingrese un valor1");
			return;
		}
		
		
		//hidden field operacion
		$("input[id='operacion']").val("<%=Utility.OP_ADD_FILTRO%>");
		//asignar valores 
		$("input[id='etiquetaAtributo']").val($('#atributoSelect option:selected').text());
		$("input[id='etiquetaOperador']").val($('#operadorSelect option:selected').text());
		if(typeof $("#valor1Select").val() != "undefined" && $("#valor1Select").val() != ""){
			$("input[id='etiquetaValor1']").val($('#valor1Select option:selected').text());
		}else if(typeof $("#inputValor1Fecha").val() != "undefined" && $("#inputValor1Fecha").val() != ""){
			$("input[id='etiquetaValor1']").val($('#inputValor1Fecha option:selected').text());
		}
		$("form#mainForm").submit();		
	});
	
	
	// Se hace que el ID del atributo a eliminar sea el valor "codigos" (es decir la posicion a eliminar).
	// Se usa un onclick para la clase deleteBtn, se obtiene el valor del id del boton al que se le hizo click,
	// y luego se asigna este valor al parametro del request "codigos", que es el que indica la posicion de filtros
	// a borrar. FSR.
	$(".deleteBtn").click(function(){
		var chosen = confirm('¿Está seguro que desea eliminar el filtro?');
		if(chosen){
			var id = this.id;
			// como se le concateno 'delete' al id(por evitar posible id repetido..), 
			// se remueve (solo se necesita el numero).
			id = id.replace('delete','');
			$("input[id='operacion']").val("<%=Utility.OP_DELETE_FILTRO%>");
			$('input[name=indexFilter]').val(id);	// el numero o posicion del filtro a eliminar.
			$("#mainForm").attr('target', '_self');
			$("#mainForm").submit();	
		}
		return false;
	});
	
});
</script>

<!-- DatePickers -->

<script>
$.datepicker.setDefaults({
	  showOn: "button",
	  buttonImageOnly: true,
	  buttonImage: '<%=request.getContextPath() + "/images/Calendar.png"%>',
	  buttonText : "Calendario"
	});

	$(function() {
		$("#fechaIni").datepicker({
			changeMonth : true,
			changeYear : true
		});
	});
</script>

<!-- Fecha final. -->
<script>
	$(function() {
		$("#fechaFin").datepicker({
			changeMonth : true,
			changeYear : true
		});
	});
</script>

<!-- Fechas filtros -->
<script>
	$(function() {
		$("#inputValor1Fecha").datepicker({
			changeMonth : true,
			changeYear : true
		});
		
		$("#inputValor2Fecha").datepicker({
			changeMonth : true,
			changeYear : true
		});
	});
</script>

<script type="text/javascript">
/*
 *Metodo que  hace uso de DWR, carga las opciones del select comunaSelect, al seleccionar una zona. 
 */
function selectZona() {
	VisualHelper.selectZona(dwr.util.getValue("zonaSelect"), function(data) {		
		dwr.util.removeAllOptions("comunaSelect");
		data = $.parseJSON(data);
		dwr.util.addOptions("comunaSelect", data, "id", "name");
	});
}

/*
 *Metodo que hace uso de DWR, asigna el valor zona correspondiente a la comuna seleccionada. 
 */
function selectComuna() {
	VisualHelper.selectComuna(dwr.util.getValue("comunaSelect"), function(data) {		
		dwr.util.setValue("zonaSelect", data);
	});
}

/* 
 * Metodo que hace uso de DWR para cargar la lista de subprogramas.
 */
function selectPrograma() {
	var userCode = '<%= ((UserVO) session.getAttribute("userInfo")).getCode() %>';
	var userGroupName = '<%= ((UserVO) session.getAttribute("userInfo")).getUserGroupName() %>';
	var userCodeArea = '<%= ((UserVO) session.getAttribute("userInfo")).getCodeArea() %>';
	VisualHelper.selectPrograma(dwr.util.getValue("programaSelect"), userCode, userGroupName,userCodeArea,
			function(data) {		
		dwr.util.removeAllOptions("subprogramaSelect");
		data = $.parseJSON(data);
		dwr.util.addOptions("subprogramaSelect", data, "id", "name");
	});
}
</script>

<form  id="mainForm"
	action="<%=request.getContextPath()
					+ "/empresas/rep/tot/ReportTotalComuna.do"%>"
	method="post">
	<html:hidden name="ReportTotalComunaForm" property="tipoCampo" styleId="tipoCampo"></html:hidden>
	<html:hidden name="ReportTotalComunaForm" property="etiquetaAtributo" styleId="etiquetaAtributo"></html:hidden>
	<html:hidden name="ReportTotalComunaForm" property="etiquetaOperador" styleId="etiquetaOperador"></html:hidden>
	<html:hidden name="ReportTotalComunaForm" property="etiquetaValor1" styleId="etiquetaValor1"></html:hidden>
	<html:hidden name="ReportTotalComunaForm" property="operacion" styleId="operacion" ></html:hidden>
	<html:hidden name="ReportTotalComunaForm" property="indexFilter" styleId="indexFilter"></html:hidden>
	<!--<html:hidden name="ReportTotalComunaForm" property="filtros"></html:hidden>-->
	
	<div align="center">
		<table class="tablaGenericaWidth70">
			<tr>
				<td class="titulosenblanco" colspan="3">
					<DIV align="center">
						<!-- Encabezado del reporte -->
						<bean:message bundle="strings" key="reportes.totales.empresa.comuna.label.encabezado.name" />
					</DIV>
				</td>
			</tr>

			<tr>
				<td class="titulosenblanco" colspan="3">&nbsp;</td>
			</tr>
			<tr>
				<td align="center" class="celdatabla" colspan="3">
					<bean:message bundle="strings" key="reportes.totales.comuna.label.seleccioncriterios.name" />
				</td>
			</tr>
			<tr>
				<td class="titulosenblanco" colspan="3">&nbsp;</td>
			</tr>

			<tr>
				<td class="celdatabla" width="31%"><bean:message
						bundle="strings"
						key="reportes.totales.comuna.html.select.zonas.name" /></td>
				<td width="44%">
					<div align="left">
						<html:select name="ReportTotalComunaForm" property="codeZona"
							title="Zona" styleClass="form" styleId="zonaSelect" style="width: 170px;">
							<option value="" selected="selected">
								<bean:message bundle="strings" key="reportes.totales.comuna.html.option.zonas.default.name" />
							</option>
							<html:optionsCollection name="ReportTotalComunaForm"
								property="zonas" label="descVflex" value="code" />
						</html:select>
					</div>
				</td>
				<td class="celdatabla" width="25%">&nbsp;</td>
			</tr>

			<tr>
				<td class="celdatabla" width="31%">
					<bean:message bundle="strings" key="reportes.totales.comuna.html.select.comunas.name" />}
				</td>
				<td width="44%">
					<div align="left">
						<html:select name="ReportTotalComunaForm" property="codeComuna"
							title="Comuna" styleClass="form" styleId="comunaSelect" style="width: 170px;">
							<option value="" selected="selected">
								<bean:message bundle="strings" key="reportes.totales.comuna.html.option.comunas.default.name" />
							</option>
							<html:optionsCollection name="ReportTotalComunaForm"
								property="comunas" label="descVflex" value="code" />
						</html:select>
					</div>
				</td>
				<td class="celdatabla" width="25%">&nbsp;</td>
			</tr>

			<tr>
				<td class="celdatabla" width="31%">
					<bean:message bundle="strings" key="reportes.totales.comuna.html.select.programas.name" />
				</td>
				<td width="44%">
					<div align="left">
						<html:select name="ReportTotalComunaForm" property="codePrograma"
							title="Programa" styleClass="form" styleId="programaSelect" style="width: 170px;">
							<option value="">
								<bean:message bundle="strings" key="reportes.totales.comuna.html.select.programas.default.name" />
							</option>
							<html:optionsCollection name="ReportTotalComunaForm"
								property="programas" label="nombre" value="code" />
						</html:select>
					</div>
				</td>
				<td class="celdatabla" width="25%">&nbsp;</td>
			</tr>

			<tr>
				<td class="celdatabla" width="31%">
					<bean:message bundle="strings" key="reportes.totales.comuna.html.select.subprogramas.name" />
				</td>
				<td width="44%">
					<div align="left">
						<html:select name="ReportTotalComunaForm"
							property="codeSubprograma" title="Beneficio" styleClass="form"
							styleId="subprogramaSelect" style="width: 170px;">
							<option value="">
								<bean:message bundle="strings" key="reportes.totales.comuna.html.select.subprogramas.default.name" />
							</option>
							<html:optionsCollection name="ReportTotalComunaForm"
								property="subprogramas" label="nombre" value="code" />
						</html:select>
					</div>
				</td>
				<td class="celdatabla" width="25%">&nbsp;</td>
			</tr>


			<tr>
				<td class="celdatabla" width="31%">
					<p>
						<bean:message bundle="strings" key="reportes.totales.comuna.html.label.fechaini.name" />
					</p>
				</td>
				<td align="left" class="celdatabla">
					<html:text name="ReportTotalComunaForm" property="fechaIni"
						styleId="fechaIni" styleClass="formInputOutput"/>
				</td>

				<td class="celdatabla" width="25%">&nbsp;</td>
			</tr>

			<tr>
				<td class="celdatabla" width="31%">
					<p>
						<bean:message bundle="strings"
							key="reportes.totales.comuna.html.label.fechafin.name" />
					</p>
				</td>
				<td align="left" class="celdatabla">
					<html:text name="ReportTotalComunaForm" property="fechaFin"
						styleId="fechaFin" styleClass="formInputOutput"/>
				</td>

				<td class="celdatabla" width="25%">&nbsp;</td>
			</tr>
			<tr>
				<td class="celdatabla" width="31%">&nbsp;</td>
				<td width="44%">
					<div align="left">						
						<html:radio name="ReportTotalComunaForm" property="tipoReporte" value="<%= ReportTotalComunaForm.TIPO_REPORTE_1 %>" />
						<bean:message bundle="strings" key="reportes.totales.comuna.html.label.tiporeporte.tipo1.name" />
						<html:radio name="ReportTotalComunaForm" property="tipoReporte" value="<%= ReportTotalComunaForm.TIPO_REPORTE_2 %>" />
						<bean:message bundle="strings" key="reportes.totales.comuna.html.label.tiporeporte.tipo2.name" />
					</div>
				</td>
				<td width="44%">
					<div align="left">						
						<html:submit styleId="generarBtn">
							<bean:message bundle="strings" key="reportes.html.button.generate.name" />
						</html:submit>
					</div>
				</td>
			</tr>
			<tr>
				<td colspan="3" align="center">
					<c:if test="${not empty sessionScope.msg}">					
						<DIV align="center">${sessionScope.msg}</DIV>
						<%session.removeAttribute("msg");%>					
					</c:if>
				</td>
			</tr>
		</table>
	</div>
	
	<br>
	<hr align="center" width="50%">
	<p class="celdatabla" align="center">
		<bean:message bundle="strings" key="filters.html.text.header.name" />
	</p>

	<div align="center">
		<table class="tablaGenericaWidth10">
			<tr>
				<td align="center" class="celdatabla">
					<bean:message bundle="strings" key="filters.html.text.parameter.name" />
				</td>
				<td align="center" class="celdatabla">
					<bean:message bundle="strings" key="filters.html.text.filter.name" />
				</td>
				<td align="center" class="celdatabla">
					<bean:message bundle="strings" key="filters.html.text.value1.name" />
				</td>
				<td align="center" class="celdatabla">
					<bean:message bundle="strings" key="filters.html.text.value2.name" />
				</td>
			</tr>
			
			<tr>
				<td>
					<div align="center">
						<html:select name="ReportTotalComunaForm" property="codeAtributo"
							title="Atributos" styleClass="form" styleId="atributoSelect">
							<html:option value="">
								<bean:message bundle="strings" key="filters.html.option.atributo.name" />
							</html:option>
							<html:optionsCollection name="ReportTotalComunaForm" 
								property="codAtributos"  label="etiqueta" value="nombre" />
						</html:select>
					</div>
				</td>
				<td>
					<c:if test="${not empty ReportTotalComunaForm.operadores}">					
						<html:select name="ReportTotalComunaForm" property="codeOperador"
							title="Operadores" styleClass="form" styleId="operadorSelect">
							<html:optionsCollection name="ReportTotalComunaForm"
								property="operadores" label="filtro" value="codFiltro" />
						</html:select>					
					</c:if>
				</td>
				
				<td>
					<!-- input cuando son valores no conocidos ingresados por el usuario -->
					<c:if test="${empty ReportTotalComunaForm.valores1}">
						<c:if test="${ReportTotalComunaForm.tipoCampo ne '<%=FiltrosReportesUtil.TIPO_FECHA%>'}">					
							<html:text name="ReportTotalComunaForm" property="valor1"
								styleClass="form" styleId="inputValor1" />						
						</c:if>					
					</c:if> 
					
					<!-- input fecha -->
					<c:if test="${empty ReportTotalComunaForm.valores1}">	
						<c:if test="${ReportTotalComunaForm.tipoCampo eq '<%=FiltrosReportesUtil.TIPO_FECHA%>'}">				
							<html:text name="ReportTotalComunaForm" property="valor1"
								styleClass="form" styleId="inputValor1Fecha" />						
						</c:if>					
					</c:if>
					
					<!-- select cuando es lista de valores conocidos -->
					<c:if test="${not empty ReportTotalComunaForm.valores1}">		
						<c:if test="${ReportTotalComunaForm.tipoCampo ne '<%=FiltrosReportesUtil.TIPO_FECHA%>'}">								
							<html:select name="ReportTotalComunaForm" property="valor1"
								title="Valor1" styleClass="form" styleId="valor1Select">
								<option value="">
									<bean:message bundle="strings"
										key="filters.html.option.valor1.name" />
								</option>								
								<html:optionsCollection name="ReportTotalComunaForm"
									property="valores1" label="filtro" value="codFiltro" />
							</html:select>						
						</c:if>					
					</c:if>

				</td>
				
				<td>
					<!-- input cuando son valores no conocidos ingresados por el usuario -->
					<c:if test="${empty ReportTotalComunaForm.valores2}">					
						<c:if test="${ReportTotalComunaForm.tipoCampo ne '<%=FiltrosReportesUtil.TIPO_FECHA%>'}">							
							<html:text name="ReportTotalComunaForm" property="valor2"
								styleClass="form" styleId="inputValor2" />														
						</c:if>					
					</c:if> 
					
					<!-- input fecha --> 
					<c:if test="${empty ReportTotalComunaForm.valores2}">	
						<c:if test="${ReportTotalComunaForm.tipoCampo eq '<%=FiltrosReportesUtil.TIPO_FECHA%>'}">				
							<html:text name="ReportTotalComunaForm" property="valor2"
								styleClass="form" styleId="inputValor2Fecha" />												
						</c:if>					
					</c:if>

				</td>
			</tr>
			
			<tr>
				<td align="center" colspan="4">
					<P>&nbsp;</P>
					<P>
						<html:button  styleId="addFilter" property="">
							<bean:message bundle="strings" key="filters.html.button.add.name" />
						</html:button>
					</P>
				</td>
			</tr>
		</table>
	</div>
	
	<div align="center">	
		<c:if test="${not empty ReportTotalComunaForm.filtros}">		
			<table class="tablaGenericaWidth50">
				<tr>
					<td>
						<display:table name="ReportTotalComunaForm.filtros"
								id="filtersTable" cellpadding="3" cellspacing="1" style="width:100%"
								class="bordestable">
								<display:column headerClass="headerTable" title="Atributo"
									class="Numero" sortable="false">
									<div align="center">										
										${filtersTable.campo}
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Filtro"
									class="Numero" sortable="false">
									<div align="center">										
										${filtersTable.filtro}
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Valor1"
									class="Numero" sortable="false">
									<div align="center">										
										${filtersTable.etiquetaValor}
									</div>
								</display:column>
								<display:column headerClass="headerTable" title="Valor2"
									class="Numero" sortable="false">
									<div align="center">
										${filtersTable.etiquetaValor2}										
									</div>
								</display:column>
								
								<display:column headerClass="headerTable" title="Eliminar"
									class="Numero" sortable="true">
									<div align="center">
										<html:image src='<%=request.getContextPath() + "/images/Delete.gif"%>' styleId='delete${filtersTable_rowNum}'
											style="width: 16; height: 16; border: 0;" styleClass="deleteBtn" />									
									</div>
								</display:column>
							</display:table>
						</td>
				</tr>
			</table>		
		</c:if>
	</div>
	
</form>